SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porOtrosTitulos] @idInscripcion as integer ,@pje as float output,@resultado as int  AS
set nocount on --para anular el trafico econ el cliente (no salen los print)
set dateformat mdy 

declare  @idAgente as int,@idCargoGenerico as int,@idAsignaturaGenerica as int, @idTipoConvocatoria as int ,@idlocalidad as int, @FechaLimite as datetime,@fechaCierreDeInscripciones as datetime,@nivel_insc as int,@ciclo as int
declare @titulo as int, @fechaEgreso as datetime,@idCapacitacion as integer, @FechaCapacitacion as datetime
declare @tieneCapacitacion as char(1) , @tieneCapacitacionParaHabilitaztes as char(1)
declare @Titulo1 as int,@Titulo2 as int,@Titulo3 as int,@Categoria as float
declare @AntiguedadGeneral as float,@catPorAntGeneral as float,@AntiguedadNivel as float,@CatPorAntNivel as float,@AntiguedadModalidad as float,@CatPorAntModalidad as float,@AntiguedadCargo as float,@CatPorAntCargo as float,@horasDeCursooCapacitacion as float, @CatPorHorasDeCurso as float,@EsTituloEspecifico as char(1),@esprofesorado as char(1),@Fecha_Egreso as datetime
declare @categoriaDefinitiva as float, @categoriaAmpliada as int
declare @AñosServicioGenerales as float, @AñosServicioCargo as float, @AñosServiciosTecnicos as float,@AñosServiciosNivel as float,@AñosServiciosModalidad as float
declare @AñosServiciosProvincia as float
declare @i as int,@Modalidad as int
declare  @grupoIncumbencia as int
declare  @grupoIncumbencia1 as int
declare @c1 as int -- antigüedad titulo
declare @c2 as int --  promedio
declare @c3 as int --Título específico
declare @c4 as int --  Título registrado
declare @c5 as int --  Título valorado
declare @TituloConcurrente as int --  Cuando tiene concurrencia de titulos
declare @cantidadPostgrados as int -- cantidad de postgrados relacionados al titulo con el que se inscribe el agente 
declare @pje1 as float --es un subtotal de puntaje
declare @pje2 as float --es otr subtotal de puntaje
declare @idconvocatoria as int

DECLARE @Error INT

BEGIN TRANSACTION
SET @ERROR=0


--TRAEMOS TODOS LOS DATOS DE LA INSCRIPCION A PARTIR DEL PARAMETRO DEL SP

select  @idAgente=i.Agente,@idconvocatoria=i.convocatoria,@IdcargoGenerico = i.CargoGenerico,@IdAsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite,@fechaCierreDeInscripciones=Conv.fechaCierre,@nivel_insc = i.nivel,@ciclo=isnull(ciclo,1)
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion

set @pje=0
set @pje1=0
set @pje2=0

/* HACER AQUI LOS PROCESOS */

if((select count(*) from tb_titulosdelagente t where t.agente=@idagente)>1)
	begin
		-- HABILITANTE O SUPLETORIO QUE HAYA OBTENIDO TITULO DOCENTE
		if(exists( SELECT t.titulo from tb_titulosdelagente t inner join tb_titulos ti on t.titulo=ti.idtitulo INNER JOIN tb_tiposdetitulos tipo on ti.tipodetitulo=tipo.idtipodetitulo
							where t.agente=@idagente and tipo.descripcion='Docente' and t.titulo NOT iN(select a.titulo3 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica))
	   AND exists( Select * from tb_InscripcionesConvocatorias where agente=@idagente and convocatoria<>@idconvocatoria))
				begin
					--PREGUNTAMOS SI LA FECHA DE OBTENCION DE TITULO ES POSTERIOR A LA FECHA DE LA ULTIMA INSCRIPCION A 
					--CONVOCATORIA

					if((select t.fechaegreso from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo3 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica))
					 > (select top 1 c.fecha9 from tb_InscripcionesConvocatorias c where c.agente=@idagente and c.convocatoria<>@idconvocatoria order by c.fecha9 desc))
					    begin
							Set @pje1=100
					    end

			    end
		--HACER LOS CALCULOS DE DOCENTE CON TITULO DE POST-GRADO
		if(exists( SELECT t.titulo from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo3 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica)))
			begin
			-- Seteamos TITULO DOCENTE 
			set @titulo = (SELECT t.titulo from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo3 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica))
			--SI LA CONSULTA SIGUIENTE DA DISTINTO DE VACIO QUIERE DECIR QUE EL TITULO CON EL QUE SE INSCRIBE EL DOCENTE
			--TIENE TITULOS RELACIONADOS EN LA TABLA tb_reltitulopostgrados ENTONCES LE SETEAMOS 2 PTS A @PJE
			if(exists(select * from tb_reltitulopostgrados r where r.idtitulo=@titulo and r.idtitulopostgrado in (select t.titulo from tb_titulosdelagente t where t.titulo<>@titulo)))
				begin
				    --REALIZA LA CUENTA DE CUANTOS POSTGRADOS TIENE EL AGENTE Y LO ALMACENA EN LA VARIABLE @cantidadPostgrados
				    set @cantidadPostgrados=(select count(*) from tb_reltitulopostgrados r where r.idtitulo=@titulo and r.idtitulopostgrado in (select t.titulo from tb_titulosdelagente t where t.titulo<>@titulo))
					--MULTIPLICA POR LA CANTIDAD DE POSTGRADOS QUE TENGA EL AGENTE
					Set @pje2=2 * @cantidadPostgrados
					goto salir
				end
		     end
	      if(exists (SELECT t.titulo from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo2 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica)))
				begin
					--TITULO HaBILITANTE CON TITULO DE POST-GRADO
					--SImilar al if de reltitulopostgrados--
					set @titulo = (SELECT t.titulo from tb_titulosdelagente t where t.agente=@idagente and t.titulo iN(select a.titulo2 from tb_anexotitulos a where a.asignaturagenerica=@idasignaturagenerica))
					if(exists(select * from tb_reltitulopostgrados r where r.idtitulo=@titulo and r.idtitulopostgrado in (select t.titulo from tb_titulosdelagente t where t.titulo<>@titulo)))
						begin
							--ASIGNAMOS PUNTAJE POSTGRADO SI EXISTE RELACION TITULO AGENTE Y RELTITULOPOSTGRADO
							--REALIZA LA CUENTA DE CUANTOS POSTGRADOS TIENE EL AGENTE Y LO ALMACENA EN LA VARIABLE @cantidadPostgrados
							set @cantidadPostgrados=(select count(*) from tb_reltitulopostgrados r where r.idtitulo=@titulo and r.idtitulopostgrado in (select t.titulo from tb_titulosdelagente t where t.titulo<>@titulo))
							--MULTIPLICA POR LA CANTIDAD DE POSTGRADOS QUE TENGA EL AGENTE
							Set @pje2=2 * @cantidadPostgrados
							goto salir
						end
			     end
		  
end					
print 'NO TIENE OTROS TITULOS'
 set @pje=0

salir:
set @pje=@pje1+@pje2
IF @Error <> 0
begin
	print 'NO TIENE OTROS TITULOS DOCENTES'
	PRINT @@TRANCOUNT 
	ROLLBACK TRANSACTION
end
ELSE
	COMMIT TRANSACTION
GO
